MATLAB Paralel
MATLAB oferă o soluție pentru implementarea algoritmilor paraleli, și anume instrumentul pentru calcul paralel (Parallel Computing Toolbox TM). Este oferit suport pentru procesoare cu mai multe nuclee, unități de procesare grafică și clustere de calculatoare. De asemenea, se pot paraleliza algoritmi fără a fi nevoie de programare MPI sau CUDA.
Există 12 motoare de calcul MATLAB (începând cu versiunea R2011b) care fac posibilă rularea algoritmilor paraleli. Acestea pot rula și de pe un sistem de calcul multiprocesor local, cu o configurație de maxim 4 de astfel de motoare.
Paralelizarea simplă a algoritmilor
[modificare | modificare sursă]Folosirea buclei parfor:
parfor i=1:n task-uri end
Task-urile sunt distribuite automat către motoarele MATLAB. În cazul în care nici unul din aceste motoare nu este disponibil, atunci aplicația va rula în mod serial.
Avantaje
[modificare | modificare sursă]Avantajele folosirii uneltei de calcul paralel MATLAB sunt:
- folosirea algoritmilor paraleli impliciți - distribuirea automată către resursele disponibile - nu este nevoie de cod paralelizat - eficientizarea timpului de calcul prin folosirea resurselor disponibile (procesoare multinucleu și unități grafice de procesare) - nu mai este necesară rescrierea codului, acesta poate rula pe orice sistem de calcul, indiferent de configurație, MATLAB va aloca corect resursele și instrumentele necesare.
Un aspect foarte important la scrierea unei aplicații paralele în MATLAB pentru îmbunătățirea timpilor de calcul îl reprezintă folosirea variabilelor neindexate într-o bucla "parfor" (cum ar fi array-urile) - ca in orice algoritm de calcul paralel, este important ca orice iterație dintr-o buclă "parfor" să fie independentă de celelalte. Altfel, array-urile trebuie împărțite (tehnică numită "slicing" - "feliere").
Exemplu
[modificare | modificare sursă]Exemplu rulare MATLAB Paralel
% Alocarea celor 8 unități centrale de prelucrare matlabpool 8 % Apel funcții ce folosesc fire de execuție % ... functieCalculParalel() %... % Dezalocarea unităților centrale de prelucrare matlabpool close
Bibliografie
[modificare | modificare sursă]MathWorks:
- http://www.mathworks.com/products/parallel-computing/index.html;jsessionid=51c98d178b6b121d4022b8a2209e
- http://www.mathworks.com/help/toolbox/distcomp/bq9u0a2.html Arhivat în , la Wayback Machine.
- http://www-math.mit.edu/~edelman/homepage/papers/parmatlabright.pdf
Vezi și
[modificare | modificare sursă]Legături externe
[modificare | modificare sursă]- https://wiki.duke.edu/download/attachments/9504961/Parallel-Programming-with-Matlab.pdf[nefuncțională – arhivă]
- http://sc08.sc-education.org/conference/engineering/mon/parallelmatlab2/ParallelMATLAB.pdf Arhivat în , la Wayback Machine.
- http://people.sc.fsu.edu/~jburkardt/presentations/fdi_matlab_2009.pdf
- http://www.icam.vt.edu/Computing/vt_2011_parfor.pdf Arhivat în , la Wayback Machine.
- http://wwwx.cs.unc.edu/Research/bass/images/a/a2/Parallel_Computing_in_Matlab_on_BASS.pdf Arhivat în , la Wayback Machine.